<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <base data-ice="baseUrl" href="../../">
  <title data-ice="title">test/Module.test.js | amd-bundle</title>
  <link type="text/css" rel="stylesheet" href="css/style.css">
  <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css">
  <script src="script/prettify/prettify.js"></script>
  <script src="script/manual.js"></script>
<meta name="description" content="A dual-use tool for bundling up AMD modules, which is much easier to use than r.js with Almond or AMDclean"><meta property="twitter:card" content="summary"><meta property="twitter:title" content="amd-bundle"><meta property="twitter:description" content="A dual-use tool for bundling up AMD modules, which is much easier to use than r.js with Almond or AMDclean"></head>
<body class="layout-container" data-ice="rootContainer">

<header>
  <a href="./">Home</a>
  
  <a href="identifiers.html">Reference</a>
  <a href="source.html">Source</a>
  <a href="test.html" data-ice="testLink">Test</a>
  <div class="search-box">
  <span>
    <img src="./image/search.png">
    <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span>
  </span>
    <ul class="search-result"></ul>
  </div>
<a style="position:relative; top:3px;" href="https://github.com/TechQuery/AMD_bundle.js"><img width="20px" src="./image/github.png"></a></header>

<nav class="navigation" data-ice="nav"><div>
  <ul>
    
  <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/source/Module.js~Module.html">Module</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/source/Package.js~Package.html">Package</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-generate">generate</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getNPMFile">getNPMFile</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getNPMIndex">getNPMIndex</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-getNPMPackage">getNPMPackage</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-merge">merge</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-function">F</span><span data-ice="name"><span><a href="function/index.html#static-function-outPackage">outPackage</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-DependencyMap">DependencyMap</a></span></span></li>
<li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-NameMap">NameMap</a></span></span></li>
</ul>
</div>
</nav>

<div class="content" data-ice="content"><h1 data-ice="title">test/Module.test.js</h1>
<pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import Module from &apos;../source/Module&apos;;


/**
 * @test {Module}
 */
describe(&apos;Module parser&apos;,  () =&gt; {

    var module;

    before(()  =&gt;  (module = new Module(&apos;./index&apos;, &apos;./test/example/&apos;)).load());

    /**
     * @test {Module#parseAMD}
     */
    it(&apos;Parse AMD&apos;,  () =&gt; {

        module.parseAMD().should.be.eql( {&apos;./a&apos;: &apos;A&apos;} );

        (module + &apos;&apos;).should.be.equal(`/* AMD module */

    var C = require(&apos;./c&apos;);

    return  {a: A, c: C, test: require(&apos;test&apos;)};
`);
    });

    /**
     * @test {Module#parseCJS}
     */
    it(&apos;Parse CommonJS&apos;,  ()  =&gt;  module.parseCJS().should.be.eql({&apos;./c&apos;: &apos;_c&apos;}));

    /**
     * @test {Module#parse}
     */
    it(&apos;Parse all&apos;,  () =&gt; module.parse().should.be.equal(`

function (A, require, exports, module) {/* AMD module */

    var C = require(&apos;./c&apos;);

    return  {a: A, c: C, test: require(&apos;test&apos;)};
}`.trim())
    );

    /**
     * @test {Module#dependencyPath}
     */
    it(
        &apos;Get paths of the dependency&apos;,
        ()  =&gt;  module.dependencyPath.should.be.eql([&apos;./a&apos;, &apos;./c&apos;])
    );

    /**
     * @test {Module#load}
     */
    it(
        &apos;Load ES 6 module&apos;,
        ()  =&gt;  (new Module(&apos;./b&apos;, &apos;./test/example/libs/&apos;)).load().should.be.eql(`
Object.defineProperty(exports, &apos;__esModule&apos;, {
    value: true
});
exports.default = void 0;

require(&apos;../c&apos;);

var _default = &apos;This is B&apos;;
exports.default = _default;`.trim())
    );

    /**
     * @test {Module#mapName}
     */
    it(&apos;Replace a dependency&apos;,  () =&gt; {

        module = new Module(
            &apos;./index&apos;,  &apos;./test/example/&apos;,  true,  {jquery: /^test$/}
        );

        module.parse().should.be.equal(`

function (A, require, exports, module) {/* AMD module */

    var C = require(&apos;./c&apos;);

    return  {a: A, c: C, test: require(&apos;jquery&apos;)};
}`.trim());

        module.dependencyPath.should.be.containEql(&apos;jquery&apos;);
    });
});
</code></pre>

</div>

<footer class="footer">
  Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(1.1.0)</span><img src="./image/esdoc-logo-mini-black.png"></a>
</footer>

<script src="script/search_index.js"></script>
<script src="script/search.js"></script>
<script src="script/pretty-print.js"></script>
<script src="script/inherited-summary.js"></script>
<script src="script/test-summary.js"></script>
<script src="script/inner-link.js"></script>
<script src="script/patch-for-local.js"></script>
</body>
</html>
